/**
 * 
 */
package br.com.cnpv.managebean.vistoria;

import java.io.ByteArrayInputStream;
import java.io.IOException;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DefaultStreamedContent;

import br.com.cnpv.modelo.bo.CategoriaEventoBO;
import br.com.cnpv.modelo.bo.VistoriaBO;
import br.com.cnpv.modelo.entity.Usuario;
import br.com.cnpv.util.Imagem;

/**
 * @author ricardo
 *
 */
@ManagedBean(name="vistoriaMB")
@SessionScoped
public class VistoriaMB extends VistoriaBean {

	
	/**
	 * 
	 */
	public VistoriaMB() {

	}

	public String paginaBusca()
	{
		try
		{
			HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
			Usuario usuario = (Usuario)request.getSession().getAttribute("usuario");
			// BO
			VistoriaBO vistoriaBO = new VistoriaBO();
			vistConcl = vistoriaBO.listar(usuario.getIdAssociacao(), "concluido");
			vistPende = vistoriaBO.listar(usuario.getIdAssociacao(), "pendente");
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		return "pretty:vistoria";
	}

	public String paginaAlterar()
	{
		try
		{
			vistoriaEvento = vistoriaSelecionada;

			CategoriaEventoBO catEventoBO = CategoriaEventoBO.getInstance();
			categoriaEventoList = catEventoBO.listar();


		}catch(Exception e)
		{
			e.printStackTrace();
		}

		return "pretty:alterarVistoria";
	}

	public void handleFileUpload(FileUploadEvent event) throws IOException {
		
		imagemList.add(event.getFile().getContents());
		
		Imagem imagem = new Imagem();
		imagem.setNome(event.getFile().getFileName());
		imagem.setImagem(event.getFile().getContents());
		
		
		imgList.add(new DefaultStreamedContent(new ByteArrayInputStream(imagem.getImagem())));
	}
	
//	public StreamedContent obtemImagem()
//	{
//		String nome = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("_nome");
//		for(Imagem img : imgList)
//		{
//			if(img.getNome().equalsIgnoreCase(nome))
//			{
//				imagem = new DefaultStreamedContent(new ByteArrayInputStream(img.imagem));
//				break;
//			}
//		}
//		
//		return imagem;
//	}
	
	public void saveOrUpdate()
	{
		try
		{
			HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
			Usuario usuario = (Usuario)request.getSession().getAttribute("usuario");

			VistoriaBO vistoriaBO = VistoriaBO.getInstance();

			vistoriaBO.saveOrUpdate(vistoriaEvento, imagemList, usuario);
		}catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}